package com.qiuyang.controller.admin;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qiuyang.pojo.Tag;
import com.qiuyang.pojo.Type;
import com.qiuyang.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/admin")
public class TagController {

    @Autowired
    private TagService tagService;
    /*jpa*/
    //搜索全部并分页
    @RequestMapping("/tags")
    public String Tas(@RequestParam(defaultValue = "1",value = "pageNum")Integer pageNum, Model model){
        PageHelper.startPage(pageNum,5);
        PageInfo<Tag> tagPageInfo = new PageInfo<>(tagService.findAll());
        model.addAttribute("pageInfo",tagPageInfo);
        return "admin/tags";
    }

    //去添加
    @RequestMapping("/toInsert")
    public String toInsert(Model model){
        model.addAttribute("tags",new Tag());
        return "admin/tags-input";
    }

    //去修改
    @RequestMapping("/toupdateTag/{id}")
    public String toUpdate(@PathVariable Long id,Model model){
        model.addAttribute("tags",tagService.findTagsById(id));
        return "admin/tags-input";
    }

    //新增
    @RequestMapping("/insertTag")
    @ResponseBody
    public String insertTag(Tag tag,Model model){
        Tag tagByName = tagService.findTagsByName(tag.getName());
        String s = tag.getName().replaceAll("\\s*", "");
        if (tagByName!=null){
            return "已存在该标签!";
        }
        if (s.length()==0){
            return "请输入正确的标签名!";
        }
        tagService.insertTag(tag);
        return "添加成功！";
    }

    //删除
    @RequestMapping("/deleteTags/{id}")
    public String deleteTags(@PathVariable Long id){
        tagService.deleteTags(id);
        return "redirect:/admin/tags";
    }

    //修改
    @RequestMapping("/updateTags")
    @ResponseBody
    public String updateTags(Tag tag,Model model){
        String s = tag.getName().replaceAll("\\s*", "");
        Tag tagsByName = tagService.findTagsByName(tag.getName());
        if (tagsByName!=null){
            return "名称已存在，请重新输入！";
        }
        if (s.length()==0){
            return "请输入正确的名称！";
        }
        tagService.updateTag(tag);
        return "修改成功!";
    }


}
